package com.parenting.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.parenting.entities.ActivityDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.parenting.model.IMPage;
import com.parenting.model.UserDTO;
import com.parenting.request.*;
import com.parenting.request.wechat.ActivityListConditionRequest;
import com.parenting.response.CollageResponse;
import com.parenting.response.FissionResponse;
import com.parenting.response.FreeResponse;
import com.parenting.response.VoucherResponse;
import com.parenting.response.patform.ActivityPageListResponse;
import com.parenting.response.wechat.WechatActivityListResponse;
import com.parenting.response.wechat.WechatActivityNoticeResponse;

import java.util.List;

/**
 * <p>
 * 活动 服务类
 * </p>
 *
 * @author 烟台业达-王世玺
 * @since 2021-08-27
 */
public interface ActivityService extends IService<ActivityDO> {


    /***
     * 裂变零元购 新增
     */
    void addFissionActivity(AddActivityFissionRequest fissionRequest, UserDTO userInfo);
    /***
     * 免费体验 新增
     */
    void addFreeActivity(AddActivityFreeRequest freeRequest,UserDTO userInfo);


    /***
     * 代金券活动新增
     */
   void addVoucherActivity(AddActivityVoucherRequest voucherRequest,UserDTO userInfo);

    /****
     * 添加普通拼
     */
   void  addCollageActivity( AddActivityCollageRequest request,UserDTO userInfo);


    /***
     * 查询零元购
     */
     List<FissionResponse> getFissionActivity(String activityId);
    /***
     * 查询 免费体验
     */
    List<FreeResponse> getFreeActivity(String activityId);

    /***
     * 查询 代金券活动
     */
    List<VoucherResponse> getVoucherActivity(String activityId);

    /****
     * 查询 普通拼
     */
    List<CollageResponse> getCollageActivity(String activityId);

    /***
     * 活动分页列表
     * @param activityBaseRequest
     * @return
     */
    IPage<ActivityDO> getActivityPageBy(ActivityBaseRequest activityBaseRequest,String ShopId);


    /****
     * 活动关闭
     * @param activityIds
     */
    void closeActivity(List<String> activityIds);
    /**********************************************以下是B端小程序********************************************************************/

    /****
     * B端小程序 活动列表
     * @param activityBaseRequest
     * @return
     */
    IMPage<WechatActivityListResponse> getWechatActivityPageListByType(ActivityListConditionRequest activityBaseRequest,String shopId);

    /***
     * 活动提醒
     * @param shopId
     * @return
     */
     List<WechatActivityNoticeResponse>  activityNotice(String shopId);

    /***
     * 平台列表
     * @param activityBaseRequest
     * @return
     */
    IMPage<ActivityPageListResponse> getActivityPlatformPageBy(ActivityBaseRequest activityBaseRequest);

}
